package com.rasenhund.android.grecorder.activity;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.Window;
import android.widget.FrameLayout;
import android.widget.TextView;

import com.rasenhund.android.grecorder.R;
import com.rasenhund.android.grecorder.common.Const;
import com.rasenhund.android.myutility.DeployUtil;
import com.rasenhund.android.myutility.MyAdUtil;

/**
 * Activity 基底クラス
 */
public class BaseActivity extends Activity {
    @SuppressWarnings("unused")
    private static final String TAG = BaseActivity.class.getSimpleName();
    private final BaseActivity self = this;

    // AdUtilityクラス
    protected MyAdUtil mAdUtil = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Viewの初期化
        initView();

    }

    @Override
    protected void onResume() {
        super.onResume();
        
        // ヘッダの設定
        int iArmyCd = getArmyCode();
        setHeader(iArmyCd);

    }

    @Override
    protected void onPause() {
        super.onPause();
    }

    @Override
    protected void onDestroy() {

        if (mAdUtil != null) {
            mAdUtil.stopAd();
        }

        super.onDestroy();
    }

    /********************
     * Method
     ********************/
    /**
     * Viewの初期化
     */
    private void initView() {
        
        // タイトルバーを非表示に
        requestWindowFeature(Window.FEATURE_NO_TITLE);

    }

    /**
     * String.xmlから文字列を取得
     * 
     * @param id
     * @return
     */
    protected String getStr(int id) {
        return getResources().getString(id);
    }

    /**
     * 設定(Int型)の書込み
     * 
     * @param key
     * @param value
     */
    private void setIntPreference(String key, int value) {

        SharedPreferences pref = getSharedPreferences(Const.PREFERENCE_NAME, MODE_PRIVATE);
        Editor editor = pref.edit();
        editor.putInt(key, value);
        editor.commit();

    }

    /**
     * 設定(Int型)の読み込み
     * 
     * @param key
     * @param defValue
     * @return
     */
    private int getIntPreference(String key, int defValue) {

        SharedPreferences pref = getSharedPreferences(Const.PREFERENCE_NAME, MODE_PRIVATE);
        int value = pref.getInt(key, defValue);

        return value;

    }

    /**
     * 広告表示部の初期設定
     */
    protected void initAdView() {

        if (DeployUtil.isDebaggable(self)) {
            // デバッグモードの場合は表示しない
            return;
        }

        mAdUtil = new MyAdUtil();
        mAdUtil.initAd(MyAdUtil.Apps.GRECORDER, self, (FrameLayout) findViewById(R.id.adLayout),
                new Handler());

    }

    /**
     * 軍属の取得
     * 
     * @return
     */
    protected int getArmyCode() {
        return getIntPreference(Const.PrefKey.PREF_KEY_ARMY_CODE, Const.ARMY.EFSF);
    }

    /**
     * 軍属のセット
     * 
     * @param armyCd
     */
    protected void setArmyCode(int armyCd) {
        setIntPreference(Const.PrefKey.PREF_KEY_ARMY_CODE, armyCd);
    }

    /**
     * ヘッダの設定
     * 
     * @param armyCd
     */
    protected void setHeader(int armyCd) {

        // ヘッダ
        TextView txtArmyEfsf = (TextView) findViewById(R.id.txtArmy_Efsf);
        TextView txtArmyPoz = (TextView) findViewById(R.id.txtArmy_Poz);

        if (txtArmyEfsf == null || txtArmyPoz == null)
            return;

        if (armyCd == Const.ARMY.EFSF) {

            txtArmyEfsf.setVisibility(View.VISIBLE);
            txtArmyPoz.setVisibility(View.GONE);

        } else if (armyCd == Const.ARMY.POZ) {

            txtArmyEfsf.setVisibility(View.GONE);
            txtArmyPoz.setVisibility(View.VISIBLE);

        }

    }

}
